package com.king.event;

import javafx.scene.layout.Region;
import lombok.Getter;
import lombok.Setter;

/**
 * 表单-事件
 * 
 * @author king
 * @date 2025年7月4日-16:27:15
 */
@Getter
@Setter
public class FormDialogEvent {

	/**
	 * 要渲染的内容，如果不传入，那么将调用模态的hide方法
	 */
	private Region node;

	/**
	 * 是否允许使用ESC键关闭
	 */
	private boolean escape;

	/**
	 * 宽度，如果小于1，那么宽度是stage.width*width，如果没有指定，那么是100%stage.width
	 */
	private double width = -1.0D;

	public FormDialogEvent(Region node, double width, boolean escape) {
		this.width = width;
		if (this.width <= 0) {
			this.width = -1.0D;
		}
		this.node = node;
		this.escape = escape;
	}

	/**
	 * 触发关闭表单模态框
	 * 
	 * @return
	 * @author king
	 * @date 2025年7月11日-12:56:00
	 */
	public static FormDialogEvent close() {
		return new FormDialogEvent(null, 0, false);
	}

	public static FormDialogEvent build(Region node, double width) {
		return FormDialogEvent.build(node, width, false);
	}

	public static FormDialogEvent build(Region node, double width, boolean escape) {
		return new FormDialogEvent(node, width, escape);
	}
}
